1f3a710bbd8c539b555ee7cfbf48d619e15286e0,src/main/java/net/blay09/mods/craftingtweaks/net/HandlerTransferStack.java,HandlerTransferStack,onMessage,#MessageTransferStack#MessageContext#,17
Before Change
@Override
public IMessage onMessage(final MessageTransferStack message, final MessageContext ctx) {
CraftingTweaks.proxy.addScheduledTask(new Runnable() {
@Override
public void run() {
EntityPlayer entityPlayer = ctx.getServerHandler().playerEntity;
Container container = entityPlayer.openContainer;
if(container != null && message.slotNumber >= 0 && message.slotNumber < container.inventorySlots.size()) {
TweakProvider tweakProvider = CraftingTweaks.instance.getProvider(container);
if (tweakProvider != null) {
Slot slot = container.inventorySlots.get(message.slotNumber);
if(!tweakProvider.canTransferFrom(entityPlayer, container, message.id, slot) || slot instanceof SlotCrafting) { // SlotCrafting is always blacklisted
return;
}
ItemStack slotStack = slot.getStack();
if(slotStack != null && slot.canTakeStack(entityPlayer)) {
ItemStack oldStack = slotStack.copy();
if(!tweakProvider.transferIntoGrid(entityPlayer, container, message.id, slotStack)) {
return;
}
slot.onSlotChange(slotStack, oldStack);
if(slotStack.stackSize <= 0) {
slot.putStack(null);
} else {
slot.onSlotChanged();
}
if(slotStack.stackSize == oldStack.stackSize) {
return;
}
slot.onPickupFromSlot(entityPlayer, slotStack);
}
}
}
}
});
return null;
}
After Change
@Override
public IMessage onMessage(final MessageTransferStack message, final MessageContext ctx) {
CraftingTweaks.proxy.addScheduledTask(() -> {
EntityPlayer entityPlayer = ctx.getServerHandler().playerEntity;
Container container = entityPlayer.openContainer;
if(container != null && message.slotNumber >= 0 && message.slotNumber < container.inventorySlots.size()) {
TweakProvider tweakProvider = CraftingTweaks.instance.getProvider(container);
if (tweakProvider != null) {
Slot slot = container.inventorySlots.get(message.slotNumber);
if(!tweakProvider.canTransferFrom(entityPlayer, container, message.id, slot) || slot instanceof SlotCrafting) { // SlotCrafting is always blacklisted
return;
}
ItemStack slotStack = slot.getStack();
if(slotStack != null && slot.canTakeStack(entityPlayer)) {
ItemStack oldStack = slotStack.copy();
if(!tweakProvider.transferIntoGrid(entityPlayer, container, message.id, slot)) {
return;
}
slot.onSlotChange(slotStack, oldStack);
if(slotStack.stackSize <= 0) {
slot.putStack(null);
} else {
slot.onSlotChanged();
}
if(slotStack.stackSize == oldStack.stackSize) {
return;
}
slot.onPickupFromSlot(entityPlayer, slotStack);
}
}
}
});
return null;
}